iT邦幫忙

2023 iThome 鐵人賽

DAY 21
0

「可是明明IntelliJ IDEA訊息裡說0.1是『The floating-point literal』為什麼HP_Real卻不是『Float型別』呢?」勇者表示困惑。

蕭凱琪解釋:「因為『Double』可以儲存的資料範圍是『Float』的兩倍啊,其實還滿多程式語言使用『Double』作為小數的預設選擇。畢竟在有足夠記憶體空間的情形下,是不會放棄精準度的。」

「如果我就是要用『Float』呢?」勇者追問。

「那就不要寫成0.1,寫成0.1f,也就是在小數後面加上『f』就可以了。」蕭凱琪無所謂的說。

在Kotlin裡,Float可以儲存約7位的有效數字,用來表示血量也足夠了。會說「約」,是因為轉換的時候用到尤拉數e,所以並不能直接對應十位數的長度。扯到對數的概念要解釋就複雜了,這裡就先不提了。

可不是故意打混摸魚喔,而是她太久沒碰對數,怕誤人子弟。蕭凱琪在心裡和系統解釋,因為之前有一次她打算隨意帶過重點,就被系統警告了。

理解完小數的部分,勇者轉頭看整數的型別:「所以『Int』和『Short』、『Long』也是因為儲存範圍不同才分成不同型別的囉。」

蕭凱琪微笑點頭:「對呀,『Short』是『Int』的一半,『Long』是『Int』的兩倍。這些名字都是相對基準的命名。」

勇者想了想,問:「它們之間只能用函式轉換,對嗎?就像『toInt』函式。」

「對,它們是不同的型別,沒有直接關係,只是都從Number類型衍伸而來,所以有實作內建互相轉換的函式。」蕭凱琪乾脆就把Number類型的檔案打開給勇者看看。

https://ithelp.ithome.com.tw/upload/images/20231005/201291977Q2KImkj6c.png


上一篇
Day11#1 顯示和實際不一定一致,人性的黑暗面 Getters
下一篇
Day12#1 靈活運用各種擴展方式:繼承、介面、委託、組合
系列文
Kotlin快速轉職系列-勇者篇30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言